import { Component, DoCheck, EventEmitter, Input, Output } from '@angular/core';

@Component({
  selector: 'app-protocol-panel',
  templateUrl: './protocol-panel.component.html',
  styleUrls: ['./protocol-panel.component.scss']
})

/**
 * 描述：用户告知协议
 * 公司：xxx有限公司
 * 版权：xxx2020
 * 作者：oyjl
 * 时间：2020-05-07 10:43:07
 */
export class ProtocolPanelComponent implements DoCheck {


  public timer: number; // 计时器
  public btnDisabled: boolean; // 按钮是否可用
  @Input() showProtocol: boolean; // 显示协议
  @Output() showProtocolChange: EventEmitter<boolean> = new EventEmitter();
  public status = false; // 控制定时器只执行一次
  constructor() {
    this.status = false;
  }

  ngDoCheck(): void {
    if (this.showProtocol && !this.status) {
      this.startTimer(10);
    }
  }
  /**
   * 描述：开启计时器，n秒后按钮可用
   * 作者：oyjl
   * 时间：2020-05-07 13:06:39
   */
  public startTimer(seconds) {
    this.timer = seconds;
    this.btnDisabled = true;
    this.status = true;
    const ti = setInterval(() => {
      this.timer--;
      if (this.timer <= 0) {
        this.btnDisabled = false;
        clearInterval(ti);
      }
    }, 1000);
  }

  /**
   * 描述：关闭协议弹框
   * 作者：oyjl
   * 时间：2020-05-07 13:24:50
   */
  public closeProtocol() {
    this.showProtocol = false;
    this.showProtocolChange.emit(false);
    this.status = false;
  }
}
